package gui.listados;

import gui.gestion.tableModel.InventariosTableModel;

import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;

import logica.Controlador;
import objetosNegocio.Almacen;
import objetosNegocio.Inventario;
import objetosNegocio.ListaAlmacenes;

public class InformesInventario extends InformesWindow{

	private static final long serialVersionUID = 1L;
	
	//tabla y controlador
	private InventariosTableModel tableModel;
	private JTable table;
	
	private JComboBox cmbAlmacenes;
	private JCheckBox chkProdActivos;

	public InformesInventario(JFrame padre, String title,Controlador controlador, InventariosTableModel tableModel) {
		super(padre, title, controlador);
		
		this.tableModel=tableModel;
	
		buildGUI();
	}
	
	private void buildGUI(){

		//Crear formulario
		JPanel searchForm = new JPanel();
		
		searchForm.setLayout(new GridLayout(1,5));
		
		cmbAlmacenes = new JComboBox();
		chkProdActivos = new JCheckBox();
		
		JLabel lblAlmacen = new JLabel("Almacen: ");
		JLabel lblProdActivos = new JLabel ("   Solo productos activos:  ");
		
		//Cargamos la lista de almacenes activos
		ListaAlmacenes listado = controlador.obtenerListadoAlmacenesActivos();
		for (int i=0;i<listado.size();i++)
			cmbAlmacenes.addItem(listado.get(i));
		
		JButton btnBuscar = new JButton("Buscar");
		btnBuscar.addActionListener(new ActionListener(){
			@Override
			public void actionPerformed(ActionEvent arg0) {
				realizarBusqueda();				
			}});
		
		
		searchForm.add(lblAlmacen);
		searchForm.add (cmbAlmacenes);
		searchForm.add(lblProdActivos);
		searchForm.add (chkProdActivos);
		searchForm.add (btnBuscar);
		
		searchPanel.add(searchForm);
				
		//Crear nueva jtable
		table=new JTable(tableModel);
		table.setPreferredScrollableViewportSize(new Dimension(900,600));
		table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 	//solo una fila puede ser seleccionada
		JScrollPane panelTable = new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 
		tablePanel.add(panelTable);
		
	
		this.pack();
		this.setLocationRelativeTo(null); //Centramos la ventana
	}
	
	private void realizarBusqueda(){
		Almacen almacen = (Almacen)this.cmbAlmacenes.getSelectedItem();
		Inventario listado =null;
		
		if(this.chkProdActivos.getSelectedObjects() != null)
			listado = controlador.obtenerInventario_ProductosActivos_Almacen(almacen.getId());
		else
			listado = controlador.obtenerInventario_ALLProductos_Almacen(almacen.getId());
		
		if (listado!=null) this.tableModel.updateData(listado);
	}
	
	
	
	

}
